Programmable logic devices, such as field programmable gate arrays (“FPGAs”), have incorporated other types of hardware blocks, such as microprocessors, multipliers, and multi-gigabit transceivers, among others. Some of these hardware blocks can be implemented either as dedicated hardware circuitry or a portion of the FPGA resources can be used to implement these blocks. For example, a microprocessor core may be embedded in an FPGA (“an embedded processor”), or a portion of FPGA resources like configuration logic blocks (“CLBs”), multipliers and BRAMs may be configured to act as a microprocessor (“a soft processor”).
One recent addition to FPGAs includes an internal configuration access port (“ICAP”). An ICAP was added to enable self-reconfiguration of FPGAs. In other words, one part of the configured FPGA can reconfigure another part of the FPGA by accessing configuration memory from within the FPGA using the ICAP.
However, heretofore, encoded configuration information that can be provided to a programmable logic device was limited to dedicated decoding circuitry supported in that device. One example of decoding circuitry may be used for configuration stream decryption. Configuration data may be highly sensitive, and sending such data in the clear poses a significant risk for technology theft, so use of encryption is compelling. Some FPGAs have dedicated triple-DES decryption circuitry on-chip and thus can only decrypt triple-DES encrypted configuration data. “DES” is short for Data Encryption Standard. Of course, not only does this limit the type of encryption used, as there are many other well-known forms of encryption, circuitry used to support such decryption uses integrated circuit area. Examples of other encryption/decryption algorithms include Rivest-Shamir-Adleman (“RSA”), Advanced Encryption Standard (AES), and Data Encryption Algorithm (“DEA”; which is DES), among others.
Accordingly, it would be desirable and useful to provide means for handling encoded configuration data that does not suffer from one or more of the above-identified limitations.